﻿using Process.Domain.DTO.InputDTO;
using Process.Domain.DTO.InputDTO.Audit;
using Process.Domain.DTO.OutDTO;
using Process.Domain.Entities;
using Process.Result;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Process.Application.WorkflowDefintion
{
    public interface IWrokflowDefintion
    {
        /// <summary>
        /// 添加工作流定义
        /// </summary>
        /// <param name="workflow"></param>
        /// <returns></returns>
        ApiResult<int> AddWorkflowDefinition(AddWorkflowDefinitionDTO workflow);
        /// <summary>
        /// 添加工作流
        /// </summary>
        /// <param name="workflow"></param>
        /// <returns></returns>
        void AddWorkflow(WorkflowDefinitionModel workflow);
        /// <summary>
        /// 启动工作流
        /// </summary>
        /// <param name="Id"></param>
        /// <returns></returns>
        WorkflowDefinitionModel StartWorkflow(long Id);
        /// <summary>
        /// 查看审核工作流
        /// </summary>
        /// <param name="">参数</param>
        /// <returns></returns>
        Apipaging<ShowAuditProcessDTO> ShowAuditProcess(AuditProcess auditProcess);

        Apipaging<ShowAuditDataOut> ShowAuditDataClick(ShowAuditData data);
    }
}
